package com.itheima.d2_prop;

import java.io.FileReader;
import java.util.Properties;
import java.util.Set;

//目标：掌握Properties对象获取键值对的操作
public class Demo01 {
    public static void main(String[] args) throws Exception {
        /**
         * Properties是Map双列集合，但是通常用它来操作.properties文件中的键值对内容，可以进行读写操作
         *
         * api：
         *      load(InputStream inStream)：从输入字节流读取属性列表（键和元素对）
         *      load(Reader reader)：从输入字符流读取属性列表（键和元素对）
         *      String getProperty(String key)：使用此属性列表中指定的键搜索属性值 (get)
         *      Set<String> stringPropertyNames()：所有键的名称的集合  (keySet())
         */

        //需求：在程序中读取prop.properties文件中的键值对数据（此时文件中有2个键值对）
        //1.创建Properties对象（本质上是一个双列集合）
        Properties prop = new Properties();
        System.out.println("未读取文件前：" + prop);

        //2.从文件中加载键值对到Properties集合中
        //prop.load(new FileInputStream("day10-io&thread\\resources\\prop.properties"));
        //也可以传入字符输入流（当文件中有中文的时候推荐使用）
        prop.load(new FileReader("E:\\ideaProject\\basic-code\\day13\\prop.properties"));
        System.out.println("读取文件后：" + prop);

        //3.加载文件数据之后，获取properties对象中key为"admin"的value
        //Object value = prop.get("admin");
        String value = prop.getProperty("znz");
        System.out.println("key为admin的value是：" + value);

        //4.加载文件数据之后，获取Properties对象中所有的key
        //Set<Object> keys = prop.keySet();
        Set<String> keys = prop.stringPropertyNames();
        System.out.println("所有的key是：" + keys);

    }
}
